package migracion;
import entidades.*;
import java.util.List;
import java.util.Date;
import java.util.GregorianCalendar;
import java.text.SimpleDateFormat;

/**
 * @author JFM
 */
public class GenerarCiclos
	{
	public static void main(String[] args) throws Exception
		{
		Date inicio = new SimpleDateFormat("dd/MM/yyyy").parse("31/10/2011"); // Los ciclos empiezan los lunes.
		long semanas = 52 + 26;
		System.out.println("Generando ciclos Uteco...");
		Date fechaInicio = inicio;
		List<Uteco> utecos = Uteco.listar();
		for(int i=0; i<semanas; i++)
			{
			GregorianCalendar fechaFin = new GregorianCalendar();
			fechaFin.setTime(fechaInicio);
			fechaFin.add(GregorianCalendar.DATE, 7);

			for(int j=0,n=utecos.size(); j<n; j++)
				{
				// Guardo el ciclo.
				CicloUteco ciclo = new CicloUteco();
				ciclo.setUtecoId(utecos.get(j).getId());
				ciclo.setFechaHoraInicio(fechaInicio);
				ciclo.setFechaHoraFin(fechaFin.getTime());
				ciclo.guardar();				
				}
			
			fechaInicio = fechaFin.getTime();
			
			if(i == semanas/4) System.out.println("Completado: 25%");
			if(i == semanas/2) System.out.println("Completado: 50%");
			if(i == semanas*3/4) System.out.println("Completado: 75%");
			}
		System.out.println("Completado: 100%\n");
		
		System.out.println("Generando ciclos Newlong...");
		fechaInicio = inicio;
		List<Newlong> newlongs = Newlong.listar();
		for(int i=0; i<semanas/2; i++)
			{
			GregorianCalendar fechaFin = new GregorianCalendar();
			fechaFin.setTime(fechaInicio);
			fechaFin.add(GregorianCalendar.DATE, 14);

			for(int j=0,n=newlongs.size(); j<n; j++)
				{
				CicloNewlong ciclo = new CicloNewlong();
				ciclo.setNewlongId(newlongs.get(j).getId());
				ciclo.setFechaHoraInicio(fechaInicio);
				ciclo.setFechaHoraFin(fechaFin.getTime());
				ciclo.guardar(EtapaNewlong.calcularFechasYCantidades(newlongs.get(j).getId(), fechaInicio, fechaFin.getTime(), false));				
				}
			
			fechaInicio = fechaFin.getTime();
			
			if(i == semanas/8) System.out.println("Completado: 25%");
			if(i == semanas/4) System.out.println("Completado: 50%");
			if(i == semanas*3/8) System.out.println("Completado: 75%");
			}
		System.out.println("Completado: 100%\n");
		}
	}
